//
//  HLETimer.h
//  YsToolsManager
//
//  Created by 宋宏康 on 2020/10/18.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface HLETimer : NSObject
/// 执行一个定时任务
/// @param task 任务的回调
/// @param start 开始时间
/// @param interval 间隔
/// @param repeats 重复
/// @param async 开启异步
+ (NSString *)execTask:(void(^)(void))task
           start:(NSTimeInterval)start
        interval:(NSTimeInterval)interval
         repeats:(BOOL)repeats
           async:(BOOL)async;


/// 执行一个定时任务
/// @param target 目标
/// @param selector 方法
/// @param start 开始时间
/// @param interval 间隔
/// @param repeats 重复
/// @param async 开启异步
+ (NSString *)execTask:(id)target
              selector:(SEL)selector
                 start:(NSTimeInterval)start
              interval:(NSTimeInterval)interval
               repeats:(BOOL)repeats
                 async:(BOOL)async;


/// 执行一个定时任务
/// @param task 任务的回调
/// @param start 开始时间
/// @param interval 间隔
/// @param repeatTimes 重复次数
/// @param async 开启异步
+ (NSString *)execTask:(void(^)(void))task
           start:(NSTimeInterval)start
        interval:(NSTimeInterval)interval
         repeatTimes:(NSInteger)repeatTimes
           async:(BOOL)async;

/// 执行一个定时任务
/// @param task 任务的回调
/// @param start 开始时间
/// @param interval 间隔
/// @param repeatTimes 重复次数
/// @param async 开启异步
/// @param complete 完成的回调
+ (NSString *)execTask:(void(^)(NSInteger sequence))task
           start:(NSTimeInterval)start
        interval:(NSTimeInterval)interval
         repeatTimes:(NSInteger)repeatTimes
                 async:(BOOL)async
              complete:(void (^)(void))complete;

/// 取消任务
/// @param name 任务名字
+ (void)cancelTask:(NSString *)name;
@end

NS_ASSUME_NONNULL_END
